package com.feri.fitness.network.pay.controller;

import com.feri.fitness.common.config.RocketMQConfig;
import com.feri.fitness.common.config.SystemConfig;
import com.feri.fitness.network.util.RocketMqUtil;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　 ┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　  ┃
 * 　　┃　　　　　　 ┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛Code is far away from bug with the animal protecting
 * 　　　　┃　　　┃    神兽保佑,代码无bug
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━永无BUG!━━━━━━
 *
 * @Description:
 * @Author: 邢朋辉
 * @Date: 2022/12/20 14:28
 */
@Controller
@RequestMapping("/api/pay/")
public class PayCallBackController {
    private Logger logger= LoggerFactory.getLogger(PayCallBackController.class);

    @PostMapping("alipaycb.do")
    public void paycb(HttpServletRequest request, HttpServletResponse response) throws IOException {
        //1.获取回调的订单号
        String no=request.getParameter("out_trade_no");
        //2.忽略 签名校验

        logger.info("支付宝回调："+no);
        //2.验证订单号是否为非空
        if(StringUtils.hasLength(no)){
            //基于MQ 实现异步处理  过滤 Tags
            //1.MQ 是什么 消息中间件 2.为什么使用 异步 扩展 3.咋用 普通消息  主题  消息过滤
            //这种消息为什么使用过滤：多种订单的支付回调 采用Tags 订单的类型 在订单号的前4位 标记位
            RocketMqUtil.send(RocketMQConfig.MQ_PAY,no,no.substring(0,4));


        }
        response.getWriter().println("success");
    }
}
